//
//  RBBaseTableViewController.swift
//  myWeiBo
//
//  Created by 刘邓诏初 on 16/4/8.
//  Copyright © 2016年 刘邓诏初. All rights reserved.
//

import UIKit

class RBBaseTableViewController: UITableViewController {

    // 用户是否登录
    var userLogin = false
    
    // 是控制器加载view的时候会调用,如果直接调用super.loadView(),后续该怎么加载就会怎么加载sb/xib,在loadView里面给view设置值后,那么就不会再去sb/xib
    override func loadView(){
        userLogin ? super.loadView() : setUpVisitorView()
        
    }

    func setUpVisitorView(){
        
        view = visitorView
        // 5.设置代理
        visitorView.delegete = self
    
        // 判断是哪个控制器，并根据控制器选择访客界面
        if self is RBHomeTableViewController {
            visitorView.startRotation()
        } else if self is RBMessageTableViewController {
            visitorView.setupVisitorViewInfo("visitordiscover_image_message", message: "登录后，别人评论你的微博，发给你的消息，都会在这里收到通知")
        } else if self is RBDiscoverTableViewController {
            visitorView.setupVisitorViewInfo("visitordiscover_image_message", message: "登录后，最新、最热微博尽在掌握，不再会与实事潮流擦肩而过")
        } else if self is RBProfileTableViewController {
            visitorView.setupVisitorViewInfo("visitordiscover_image_profile", message: "登录后，你的微博、相册、个人资料会显示在这里，展示给别人")
        }
        // 设置导航栏按钮
        navigationItem.leftBarButtonItem = UIBarButtonItem(title: "注册", style: UIBarButtonItemStyle.Plain, target: self, action: Selector("registerBtnDidClick"))
        navigationItem.rightBarButtonItem = UIBarButtonItem(title: "登录", style: UIBarButtonItemStyle.Plain, target: self, action: Selector("loginBtnDidClick"))
    }
    
    
    // MARK: - 按钮点击事件
    @objc private func registerBtnDidClick(){
        register()
    }
    
    @objc private func loginBtnDidClick(){
        login()
    }

    // MARK: - 懒加载
    private lazy var visitorView: RBVisitorView = RBVisitorView()
}

// 扩展和OC的分类很像,只能扩展方法,可以让对象实现协议,好处方便管理代码
extension RBBaseTableViewController: RBVisitorViewDelegete{
    // MARK: - 代理方法
    /// 6.需要实现协议里面的方法,如果不实现非optional的方法还是会报错
    func visitorViewDidClickRegisterButton(visitorView visitorView: UIView) {
        register()
    }
    
    func visitorViewDidClickLoginButton(visitorView visitorView: UIView) {
        login()
    }
    
    func register(){
        RBPrint("注册")
    }
    
    func login(){
        // 创建授权界面
        let oauthVC = RBOauthViewController()
        
        // 包装一个导航控制器，并弹出Oauth授权界面
        presentViewController(UINavigationController(rootViewController: oauthVC), animated: true, completion: nil)
    }
}
